# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        潘炎珍  
# Name:         hw02
# Description:  定义三个类，有一个是人基类，老师类和人类继承自人，老师去教工食堂吃饭，住在家或者教工宿舍，学生去普通
#               食堂吃饭，住学生宿舍，老师讲课，学生上课，共有的属性有姓名，年龄，性别，身高，体重，定义有方法个特有方法各
#               三个，特有属性定义一个以上。（老师有工资，学生有学费）
# Author:       98745
# Date:         2019/3/16
#-------------------------------------------------------------------------------

class Person:
    '''定义Person类'''
    def __init__(self,name,age,sex,height,weight):
        '''定义person类的构造方法，分别声明name，age，sex，height，weight属性'''
        self.name=name
        self.age=age
        self.sex=sex
        self.height=height
        self.weight=weight

    def get_info(self):
        '''定义get_info方法，用于读取person类的基本信息'''
        return '姓名：{}，年龄：{}，性别：{}，身高：{}，体重：{}'.format(self.name,self.age,self.sex,self.height,self.weight)

    def do_work(self,date):
        '''定义do_work方法，用于查看今天是否需要上班或上课'''
        list = ['星期一', '星期二', '星期三', '星期四', '星期五']  # 定义列表，用于判断是否需要去上课或上班
        if date in list:
            return '{}是工作日,需要上课或上班'.format(date)
        else:
            return '今天是休息日，不需要上课或上班'

    def keep_umbrella(self,data):
        '''定义keep_umbrella方法，查看今天是否需要带伞'''
        if data =='雨天':
            print('今天是雨天，需要带伞')
        else:
            print('今天不是雨天，不需要带伞')


class Student(Person):
    '''定义student类'''
    def __init__(self,id,*list):
        '''构造方法,id为学号'''
        super().__init__(*list)
        self.id=id

    def eat(self):
        '''定义eat方法，学生去学生食堂吃'''
        return '学生去学生食堂吃饭'

    def location(self):
        '''定义location方法，学生住在学生公寓'''
        return '学生住在学生公寓'

    def test(self):
        '''定义test方法，学生期末要参加考试'''
        print('期末需要参加考试')


class Teacher(Person):
    '''定义teacher类'''
    def __init__(self,salary,*list):
        '''构造方法,salary是工资'''
        super().__init__(*list)
        self.salary=salary

    def eat(self):
        '''定义eat方法，老师去教职工食堂吃饭'''
        return '老师去教职工食堂吃饭'

    def location(self):
        '''定义location方法，老师的住处'''
        return '老师住在教职工公寓或着回家住'

    def take_meeting(self):
        '''定义take_meeting方法，老师需要参加会议'''
        print('老师需要定期召开会议，讨论学生的培养方案')


def get_scholarship(grade):
    '''定义get_scholarship方法，优秀的学生可以拿到奖学金'''
    if grade == '一等':
        print('获得{}奖学金，奖金为1500元'.format(grade))
    elif grade == '二等':
        print('获得{}奖学金，奖金为800元'.format(grade))
    else:
        print('获得{}奖学金，奖金为500元'.format(grade))


if __name__ == '__main__':
    person=Person('pan',20,'男',180,'65kg')
    print(person.get_info())

    print('------------')
    stu1=Student('001',*['zhao',20,'女',160,'48kg'])
    print('学号是：'+stu1.id+' '+stu1.get_info(),end=' ')
    stu1.test()
    setattr(stu1,'get_scholarship',get_scholarship)
    print('{}号学生成绩优秀'.format(stu1.id),end=',')
    stu1.get_scholarship('一等')       #获取该生获得的奖金

    print('---------------')
    teacher =Teacher(8000,*['liang',53,'男','175','70kg'])
    print(teacher.get_info())
    teacher.take_meeting()







